import java.util.*;

// 题目描述：
// 实现一个支持优先级的队列，高优先级先出队列；同优先级时先进先出。
// 如果两个输入数据和优先级都相同，则后一个数据不入队列被丢弃。
// 队列存储的数据内容是一个整数。
// 输入描述：
// 一组待存入队列的数据（包含内容和优先级）
// 输出描述：
// 队列的数据内容（优先级信息输出时不再体现）
// 补充说明：
// 不用考虑输入数据不合法的情况，测试数据不超过 100 个
// 输入：(10,1),(20,1),(30,2),(40,3)
// 输出: 40,30,10,20
public class queueTest {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        s = s.replaceAll("\\(", "").replace("),",";").replace(")","");
        String[] arr = s.split(";");
        Set<String> set = new HashSet<>();
        int i = 0;
        PriorityQueue<Integer[]> pq = new PriorityQueue<>(
                (a,b) -> a[1].equals(b[1]) ? a[2] - b[2] : b[1] - a[1]
        );

        for (String subStr : arr) {
            if (set.contains(subStr)) {
                continue;
            }
            set.add(subStr);
            String[] subArr = subStr.split(",");
            pq.add(new Integer[]{
                    Integer.parseInt(subArr[0]), Integer.parseInt(subArr[1]),i++
                }
            );
        }

        StringJoiner sj = new StringJoiner(",");
        while (!pq.isEmpty()) {
            sj.add(String.valueOf(pq.poll()[0]));
        }
        System.out.println(sj);
    }
}
